正则表达式之字符串的replace方法 | 您所在的位置:网站首页 › Js 正则 多个文字 › 正则表达式之字符串的replace方法 |
1.首先,正则表达式是什么
正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。 2.字符串的replace()方法replace() 方法返回一个由替换值(replacement)替换一些或所有匹配的模式(pattern)后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。 原字符串不会改变。 (1)语法 :str.replace(regexp|substr, newSubStr|function) 当模式(pattern)为字符串时。 一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。 举个例子: const str = 'abcc 1212&'; console.log(str.replace('12', '$')); // abcc $12& newSubStr (replacement) 用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名(见MDN) const str = 'abcc 1212'; const reg = /([a-c]+)(\s*)(\d+)/g; console.log(str.replace(reg, '$3$2$1')); // 1212 abccfunction (replacement) 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数(这里指的是模式)匹配到的结果。 replace方法的第二个参数为函数时。 可以指定一个函数作为第二个参数。在这种情况下,当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。 另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。 该函数的参数,说明如下: 下面给个例子: const str = 'abcc 1212'; const reg = /([a-c]+)\s*(\d+)/g; console.log(str.replace(reg, ($0, $1, $2) => { return $2 + $1; })); // $0 = str,即正则表达式reg匹配的子串。 // $1 = abcc,是([a-c]+)匹配的子串。 // $2 = 1212,是(\d+)匹配的子串。结果为: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |